<!DOCTYPE html>
<html>
  <head>
    <title>Satis-go</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <!-- Bootstrap core CSS -->
    <link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
 
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="http://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.js"></script>
      <script src="http://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
    <![endif]-->

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-46191138-1', 'fliglio.com');
      ga('require', 'displayfeatures');
      ga('send', 'pageview');

    </script>

  </head>
  <body>
  <a href="https://github.com/benschw/satis-go"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
    <div class="container">
      <div class="jumbotron">
        <h1>satis-go</h1>
        <p>
          Satis-go is a web server for hosting and managing your <a href="https://github.com/composer/satis">Satis Repository</a> for <a href="https://getcomposer.org/">Composer Packages</a>
        </p>


      </div>

      <div class="panel panel-default">
        <div class="panel-heading">Releases</div>
        <div class="panel-body">
          <ul class="list-group">
            <li class="list-group-item">
              <a class="btn btn-success" role="button" href="https://github.com/benschw/satis-go/releases/tag/0.1.1">satis-go 0.1.1 release</a> webserver
            </li>
            <li class="list-group-item">
              <a class="btn btn-success" role="button" href="https://github.com/benschw/satis-admin/releases/tag/0.1.1">satis-admin 0.1.1 release</a> static web app for admin
            </li>
          </ul>
        </div>
      </div>
      <div class="panel panel-default">
        <div class="panel-heading">Features</div>
        <div class="panel-body">
          <ul>
            <li>
              Satis-go provides a simple user interface for managing the repositories you want to track in your Composer package repo
            </li>
            <li>
              Repo generation is delegated to <a href="https://github.com/composer/satis">Satis</a> so your package repository will stay up to date with composer specs
            </li>
            <li>
              No database required: the satis config file is managed directly while still managing writes and reads safely
            </li>
            <li>
              In fact, satis is the only dependency: satis-go is written in go and only relys on having the `satis` build executable in your path. Download to /opt/satis-go/ and you're done installing.
            </li>
            <li>
              RESTful API so you and integrate this into your CI
            </li>
          </ul>
        </div>
      </div>
      <div class="panel panel-default">
        <div class="panel-heading">Roadmap</div>
        <div class="panel-body">
          <ul>
            <li>
              Add support for managing which versions to track via. the "require" config option (currently you are forced to "require-all")
            </li>
          </ul>
        </div>
      </div>
      <div class="panel panel-default">
        <div class="panel-heading">Getting Started</div>
        <div class="panel-body">
          <p>Get Composer/Satis and install in path</p>
          <pre>
    apt-get install -y php5-cli
    curl -sS https://getcomposer.org/installer | php
    php ./composer.phar create-project composer/satis /opt/satis --stability=dev --keep-vcs
    ln -s /opt/satis/bin/satis /usr/local/bin/satis
          </pre>

          <p>Install satis-go server &amp; config</p>
          <pre>    
    mkdir /opt/satis-go
    wget -qO- https://github.com/benschw/satis-go/releases/download/0.1.1/satis-go-`uname`-`uname -m`.gz | \
        gunzip > /opt/satis-go/satis-go
    chmod +x /opt/satis-go/satis-go
    wget -qO-  https://github.com/benschw/satis-go/releases/download/0.1.1/config.yaml > \
        /opt/satis-go/config.yaml
          </pre>

          <p>Install admin ui for satis-go server</p>
          <pre>    
    wget -qO-  https://github.com/benschw/satis-admin/releases/download/0.1.1/admin-ui.tar.gz | \
        tar xzv -C /opt/satis-go/
          </pre>

          <p>Start the server</p>
          <pre>    
    /opt/satis-go/satis-go

          </pre>
          <p>
            Now you can navigate to <a href="http://localhost:8080/admin">http://localhost:8080/admin</a> and start adding repos!
          </p>
          <p>
            Use the REST api to create a source control web-hook which will refresh your repository: curl -X POST http://localhost:8080/api/generate-web-job
          </p>
          <p>
            If you want to be able to use this on something other than "localhost", update /opt/satis-go/config.yaml to "bind" on something like "0.0.0.0:8080" and "repohost" to be whatever name you are pointing at this server.
          </p>
        </div>
      </div>



    </div>


    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script>

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-46191138-1', 'auto');
      ga('send', 'pageview');

    </script>

  </body>
</html>
